home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / utils / crossword / source / crossword.hist next >
Encoding:
Text File  |  1980-01-04  |  11.6 KB  |  350 lines

  1.  
  2.  
  3. History of CrossWord Program
  4. ============================
  5.  
  6.     This file contains such information as where the source files lie,
  7. where the various data files lie etc. It also details how the program was
  8. developed.
  9.  
  10.  
  11. 20/1/91    : First code written based upon my own standard Intuition applica-
  12.       tion header file, new_applic.s, which contains menu and gadget
  13.       handling code. For version 2.0 I will split gadget handling so
  14.       that different routines handle GADGIMMEDIATE and RELVERIFY gad-
  15.       gets.
  16.  
  17. 2/2/91    : First code written for generating crossword grid. Includes the
  18.       setting up of synthetic RastPort, RasInfo and TmpRas for the
  19.       crossword grid bitmap. See SOURCE2:SOURCE/CrossWord.s for the
  20.       equates defining grid sizes and the rastport code.
  21.  
  22. 15/2/91    : Written full menu handler. Some routines tied to menus yet to be
  23.       written, such as code for the New Crossword and Access Disc menu
  24.       items. Code to fill grid written.
  25.  
  26. 27/2/91    : Mouse handler begun. Also first point at which program written to
  27.       handle two different crossword grid types.
  28.  
  29. 4/3/91    : Mouse handler debugged for grid handling. Can now change squares
  30.       on both types of grid, and draw grid square sequences.
  31.  
  32. 12/3/91    : Code written for scroll gadgets on main screen. Yet to be debug-
  33.       ged.
  34.  
  35. 17/3/91    : Code written for coordinate position info boxes to right of grid.
  36.  
  37. 26/3/91    : Code written for requester handling using my own custom requester
  38.       data structure (requester handler block, rhb_).
  39.  
  40. 2/4/91    : Requester handler code debugged (apart from minor precode bug).
  41.  
  42. 11/4/91    : New crossword requester designed & set up.
  43.  
  44. 14/4/91    : Fancy images for menus finally designed & agreed upon. Integra-
  45.       ted into menus. They work first time!
  46.  
  47. 29/4/91    : Scroll gadget code for new crossword requester written & debug-
  48.       ged. Begin debugging main screen scroll gadgets.
  49.  
  50. 12/5/91    : Main screen gadgets debugged.
  51.  
  52. 2/6/91    : Bit of a lull while I indulge in some birdwatching. Now I write
  53.       the code to allow clue lists to be set up and manipulated.
  54.  
  55. 18/6/91    : Clue list input requester code written, graphics designed & im-
  56.       ported. Still to sort out the rhb_precode bug in HandleRequest()
  57.       to call ActivateGadget() on the clue question input gadget.
  58.  
  59. 7/7/91    : Clue lists mostly debugged. Seem to work for now.
  60.  
  61. 17/7/91    : Begin working on solution input. Use similar requester to clue
  62.       question input. Not much work to do for the basic requester, but
  63.       printing clue question not in yet.
  64.  
  65. 24/7/91    : Begin writing code to take clue question from clue lists, and
  66.       format the text for pretty-printing within the solution input
  67.       requester. This takes quite some time!
  68.  
  69. 12/8/91    : Debug the pretty-printer (but it's still not ideal-I just happen
  70.       to be fussy about such things).
  71.  
  72. 17/8/91    : Debug solution input for BOTH crossword grid types. Big headache!
  73.  
  74. 22/8/91    : Cure a bug lurking in the main screen scroll gadgets (sometimes
  75.       tried to display a grid starting at square position (0.0) at the
  76.       top left corner, when (1,1) was the minimum legal value).
  77.  
  78. 25/8/91    : Begin writing InfoRequesters and QueryRequesters.
  79.  
  80. 27/8/91    : InfoRequesters fully debugged. Ditto QueryRequesters. These are
  81.       to become known in CrossWord.Doc as the dreaded green boxes!
  82.  
  83. 31/8/91    : Written the HELP function. Also written code for extra help via
  84.       function keys F1-F5. Works first time!
  85.  
  86. 1/9/91    : Bought 512K RAM expansion because I ran out of memory on a base
  87.       512K Amiga while assembling it! Makes life beautiful from this
  88.       point on, because it's got a disable switch to allow me to test
  89.       if the assembled program still works in 512K.
  90.  
  91. 4/9/91    : Write the BIG Disc Access Panel. Design gadgets, link them in,
  92.       write routine to create sorted directory listing.
  93.  
  94. 6/9/91    : Sorted directory fully debugged. So are disc selector gadgets.
  95.  
  96. 8/9/91    : Function gadgets debugged. Now they act like proper Radio But-
  97.       tons (GEM users on STs will know what I mean).
  98.  
  99. 10/9/91    : Enact and Cancel gadgets debugged. Now I can call up disc func-
  100.       tions.
  101.  
  102. 14/9/91    : Rename, Delete, Parent and Make Dir all work.
  103.  
  104. 16/9/91    : Save now works (but see later!). Created IFF format file for the
  105.       program.
  106.  
  107. 19/9/91    : Load and all of the disc error messages work.
  108.  
  109. 21/9/91    : Format finally works (after a fashion). This one was HARD.
  110.  
  111. 23/9/91    : Find a bug in clue question display for solution input requester.
  112.       If there's no clue question, the last valid one is left on the
  113.       requester. Write code to stop this. Now space is left blank if
  114.       there's no clue question for the picked clue.
  115.  
  116. 25/9/91    : Find a bug in clue picking. Won't pick clue properly if user hits
  117.       square (1,1) or the 1st square of a clue. Fixed it.
  118.  
  119. 27/9/91    : Introduce Guide String in solution input requester to give user
  120.       some idea what the solution should look like.
  121.  
  122. 29/9/91    : Allow user to enter white space, hyphens & other punctuation marks
  123.       into the solution. Program strips them out properly now.
  124.  
  125. 30/9/91    : Found bug in IFF Save. If no clue question, then 2 extra bytes are
  126.       allocated for the file, but not written. Chunk size therefore is
  127.       WRONG. Fixed it. Still loads previous IFF files with clues-they're
  128.       not affected.
  129.  
  130. 1/10/91    : Lull because I'm happy with it.
  131.  
  132. 18/11/91    : Hit a couple of minor niggles. Still not happy with Format (if a
  133.       completely dud disc is inserted, then WorkBench screen pops to
  134.       front & displays system requester). Try to stop this by forcing
  135.       user to insert disc then hit mouse button while trackdisk is
  136.       locked. Still not 100% ecstatic about it but it's better than
  137.       before.
  138.  
  139. 19/11/91    : As of now, I think it's ready to surprise the big wide world with!
  140.       Amiga Format coverdisc, here I come! (???). Prepare some example
  141.       crosswords to send off with it, plus the CrossWord.Doc file and a
  142.       couple of other files. Also prepare to send a copy to Mark Meany
  143.       of ACC for beta-testing (see if he can break it!) along with cover
  144.       letter telling him NOT to spread it as it's NOT PD!
  145.  
  146. 31/1/92    : Received beta-test report. Works on :
  147.  
  148.         A500 V1.2 + 512K expansion, 2 drives
  149.  
  150.         A500 V1.3 + 512K expansion, 2 drives
  151.  
  152.         A500+ V2.0, 1.5MB CHIP RAM, 3 drives
  153.  
  154.       Thanks Mark!
  155.  
  156.       Things he's happy with:
  157.  
  158.         HELP feature. He loves it!
  159.  
  160.         Menu graphics - but welcomes the on-line HELP
  161.         as he hasn't yet learned all of the functions!
  162.  
  163.       Quibbles:
  164.  
  165.         Sporadic failure of inforequester to respond to
  166.         left mouse button (particularly after a HELP
  167.         session)
  168.  
  169.         Inability to replace accidentally erased letter
  170.         without re-entering a solution
  171.  
  172.       Intend gadget handling rewrite to cure the Inforequester problem.
  173.  
  174. 1/2/92    : Added a "Grid Editing ON/OFF" switch to prevent accidental corrup-
  175.       tion of the grid once editing was complete, to cover one of Mark's
  176.       minor quibbles. Also, GADGET HANDLING NOW REDESIGNED FROM SCRATCH
  177.       and now handles GADGIMMEDIATE/RELVERIFY via separate event handler
  178.       code! What's more, it works!
  179.  
  180.       Gadget handling rewrite DOESN'T affect Inforequester problem (yet)
  181.       but I know what's needed. Now that GADGIMMEDIATE/RELVERIFY are on
  182.       different event handlers, simply make the HELP feature for gadgets
  183.       apply to the RELVERIFY half of the gadget handling. Will do this
  184.       A.S.A.P. Other than that (and adding a minor feature to the grand
  185.       Disc Access Panel) it's ready to ship!
  186.  
  187. 6/2/92    : InfoRequester problem mostly cured. Matter of making it unlock if
  188.       lock is set at start. Now occasionally 2 LMB presses needed, and I
  189.       think I can stop that too...
  190.  
  191.       Implemented Undo Array for grid squares to allow mouse editing to
  192.       recover letters accidentally erased. Now remembers ALL of those
  193.       squares with letters in, so that if several are erased, they can
  194.       all be recovered. So far, also works for continuous erase/redraw
  195.       using mouse button held down (but not EXHAUSTIVELY tested!).
  196.  
  197. 14/2/92    : Mark's 2nd report. Quibbles this time include:
  198.  
  199.         Tidier handling when no clue list exists. Give user the
  200.         option of building the clue list at this point.
  201.  
  202.         Building a clue list with a completely empty grid is a
  203.         waste of time-don't let user do it...
  204.  
  205.         If a clue list exists, signal to user that building a
  206.         new one will destroy the old one.
  207.  
  208.         Also, warn about wiping solutions from the grid.
  209.  
  210.         Also, check the problem with 'rubout solution' if
  211.         there are no solutions in the grid.
  212.  
  213.         The format problem again. Major headache, this one.
  214.  
  215.       Will try and cure them A.S.A.P.
  216.  
  217. 25/2/92    : Tried curing the font switch problem. Somehow the CLI FF command
  218.       buggers up font handling if I change the CLI's font, and hence I
  219.       can't get CrossWord to go back to the Topaz80 font even if I use
  220.       all of the routines AND alter all of the TextAttr pointers in the
  221.       IntuiTexts!
  222.  
  223. 27/2/92    : Started moving on to Mark's final gripe list. Warning requesters
  224.       now exist for Delete and Format.
  225.  
  226. 14/9/92    : PANIC STATIONS!!!! Unpredictable crash if trying to make a new
  227.       grid from startup, especially if it's a huge grid. Attempted to
  228.       halt MOUSEMOVE messages and temporarily kill REPORTMOUSE for the
  229.       main window, but this doesn't stop the problem. Apart from this,
  230.       the grid filling routines are just TOO SLOW. A rewrite is in or-
  231.       der.
  232.  
  233. 19/9/92    : After a LOT of agonising, the bug is found. Forgot to resize the
  234.       Undo array when changing grid size. This is why it crashed. The
  235.       Undo initialiser scribbled all over whatever followed the origi-
  236.       nal Undo array and this caused ALL SORTS of hassle-Intuition bad
  237.       IDCMP gurus, weird FreeMem() twice gurus, and crashes that MonAm
  238.       couldn't catch (because MonAm sometimes got scribbled all over as
  239.       well!).
  240.  
  241.       Now Undo array resized properly. Also use AvailMem() to make sure
  242.       I've got enough memory prior to grid resizing. If not, old grid
  243.       is kept and an Inforeq popped up to tell user to get rid of other
  244.       tasks running alongsied CrossWord.
  245.  
  246.       Now all I have to do is sort out the Format problem and the font
  247.       problem.
  248.  
  249.  
  250.  
  251. Files Used
  252. ==========
  253.  
  254. VOL21:        Development files to test user interface.
  255.         CrossV3/CWNewReq/CWDiscReq etc.
  256.  
  257. VOL14:        Directory:menuimages/crossword
  258.  
  259.         All of the fancy menu image files created for the
  260.         program. these all have names such as M_AD_70x40_R
  261.         meaning 'menu, access disc, size 70x40 pixels,
  262.         render image', or M_BF_60x40_S meaning 'menu, black
  263.         fill grid, size 60x40 pixels, select image'. There
  264.         is a _R and a _S image for each menu item. The full
  265.         list includes:
  266.  
  267.         M_AC    : Add Clue To List
  268.         M_AD    : Access Disc
  269.         M_BF    : Black Fill Grid
  270.         M_CG    : Clear Solutions From grid
  271.         M_EC    : Erase Clue From List
  272.         M_ES    : Enter Solutions
  273.         M_ML    : Make Clue List
  274.         M_NG    : New Grid
  275.         M_QP    : Quit Program
  276.         M_RS    : Rubout Solutions
  277.         M_WF    : White Fill Grid
  278.         
  279.         Version 2.0 will include menu items to maintain a
  280.         lookup dictionary that can be edited by the user.
  281.         Also, the gadget handling will be tidied up, and
  282.         the HELP facility will be extended to ALL gadgets
  283.         regardless of where they are.
  284.  
  285.         Directory:gadgets
  286.  
  287.         All of the gadgets I designed for various functions
  288.         including the Disc Access Panel gadgets. These live
  289.         in subdirectories such as /cursors, /switches,
  290.         /buttons, /boxes, /sliders/, /knobs etc.
  291.  
  292.         Directory:images
  293.  
  294.         All of the backdrops for the panels.
  295.  
  296. SOURCE2:        Directory:SOURCE
  297.  
  298.         CrossWord.s main source file,
  299.         CWMake.s for when I ran low on memory in pre-1MB
  300.         days, CrossWord.Hist (this file).
  301.  
  302.         Directory:INCLUDES
  303.  
  304.         CWClues.i
  305.  
  306.         CWDiscButtons.i
  307.         CWDiscHandler.i
  308.         CWDiscReq.i
  309.  
  310.         CWExtras.i
  311.  
  312.         CWFormat.i
  313.  
  314.         CWHelpCode.i
  315.  
  316.         CWImage1.i        ;these are
  317.         CWImage2.i        ;utterly HUGE!
  318.         CWImage3.i
  319.  
  320.         CWInfoReq.i
  321.         CWInfoTexts.i
  322.  
  323.         CWMenus.i
  324.  
  325.         CWNewReq.i
  326.  
  327.         CWQueryReq.i
  328.         CWReqHandler.i
  329.  
  330.         CWSolutions.i
  331.  
  332.         my_dos.i
  333.         my_exec.i
  334.         my_graf.i
  335.         my_icon.i
  336.         my_intuition.i
  337.  
  338.  
  339. Total:172 files in 18 directories on 3 discs. Space left on discs is:
  340.  
  341. VOL21: about 111K
  342.  
  343. VOL14: 17K !!!
  344.  
  345. SOURCE2: 10K!!!
  346.  
  347.  
  348.  
  349.  
  350.